Treat XKB_MOD_NAME_LOGO as super key
authorThomas Jost <schnouki@schnouki.net>
Tue, 3 Jan 2023 16:09:04 +0000 (17:09 +0100)
committerThomas Jost <schnouki@schnouki.net>
Tue, 3 Jan 2023 16:09:04 +0000 (17:09 +0100)
Loosely based on !5304, which fixes #4913 for GTK3.

gdk/wayland/gdkkeys-wayland.c

index 0013f7ce3c4294fea04fe909606ad5b0a35e8663..789fa2b43b70f10ca4217332f36e5de66925296f 100644 (file)
@@ -296,7 +296,7 @@ get_gdk_modifiers (struct xkb_keymap *xkb_keymap,
   if (mods & (1 << xkb_keymap_mod_get_index (xkb_keymap, "Mod3")))
     state |= GDK_MOD3_MASK;
   if (mods & (1 << xkb_keymap_mod_get_index (xkb_keymap, XKB_MOD_NAME_LOGO)))
-    state |= GDK_MOD4_MASK;
+    state |= GDK_MOD4_MASK | GDK_SUPER_MASK;
   if (mods & (1 << xkb_keymap_mod_get_index (xkb_keymap, "Mod5")))
     state |= GDK_MOD5_MASK;
   if (mods & (1 << xkb_keymap_mod_get_index (xkb_keymap, "Super")))
@@ -384,7 +384,7 @@ gdk_wayland_keymap_add_virtual_modifiers (GdkKeymap       *keymap,
   xkb_mod_index_t idx;
   uint32_t mods, real;
   struct { const char *name; GdkModifierType mask; } vmods[] = {
-    { "Super", GDK_SUPER_MASK },
+    { "Super", GDK_SUPER_MASK | GDK_MOD4_MASK },
     { "Hyper", GDK_HYPER_MASK },
     { "Meta", GDK_META_MASK },
     { NULL, 0 }